package day0224;

public class Demo {

    public static void main(String[] args) {
        Pet pet = new Cat();
        pet.eat();
    }
}

/**
 * abstract 抽象
 *   abstract 修饰的方法表示抽象方法，抽象方法不能有 方法体（实现）
 *   抽象方法必须在抽象类中， 继承抽象类的子类 必须重写抽象方法否则这个子类也得是抽象的
 *   抽象方法不能是 private / final 修饰的
 * 抽象类不能被实例化
 *   抽象类不能被 final 修饰
 */
abstract class Pet {

    private String name;

    public Pet(){}

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String descriptor() {
        return "宠物名字是： " + getName();
    }

    abstract void eat();
}

class Cat extends Pet {

    private String kind;

    private String color;


    public void play() {
        System.out.println("陪主人玩");
    }

    @Override
    public void eat(){
        System.out.println("吃猫粮");
    }
}

abstract class AbstractClass {

    public void methodA(){}

    public void methodB(){}
}
